﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RonaldCamcam.XBeeFramework.Api
{
    public enum ApiId : byte
    {
        /// <summary>
        /// RF module status messages are sent from the module in response to specific conditions
        /// </summary>
        ModemApiIdentifier = 0x8A,
        /// <summary>
        /// The “AT Command” API type allows for module parameters to be queried or set. When using this
        /// command ID, new parameter values are applied immediately. This includes any register set with
        /// the “AT Command - Queue Parameter Value” (0x09) API type.
        /// </summary>
        AtCommandApiWithApplyChanges = 0x08,
        /// <summary>
        /// This API type allows module parameters to be queried or set. In contrast to the “AT Command” API
        /// type, new parameter values are queued and not applied until either the “AT Command” (0x08) API
        /// type or the AC (Apply Changes) command is issued. Register queries (reading parameter values)
        /// are returned immediately.
        /// </summary>
        AtCommandApiQueueOnly = 0x09,
        /// <summary>
        /// Allows for module parameter registers on a remote device to be queried or set
        /// </summary>
        RemoteCommandRequest = 0x17
    }

    public enum XBeeResponse : byte
    {
        No = 0x00,
        Needed = 0x52 //arbitrary selected
    }

    public enum ApplyRemoteChanges : byte
    {
        Yes = 0x02,
        No = 0x00
    }

    public enum RemoteStatus : byte
    {
        Ok = 0x00,
        Error = 0x01,
        InvalidCommand = 0x02,
        InvalidParameter = 0x03,
        NoResponse = 0x04
    }
}
